#ifndef __FILTERLIB_H__
#define __FILTERLIB_H__

/*
 * 离散时间 FIR 滤波器(实数)
 * ----------------
 * 滤波器结构  : 直接型 FIR
 * 滤波器长度  : 11
 * 稳定     : 是
 * 线性相位   : 是 (Type 1)
 */
const int FIR_BLSANJIAO_30 = 31;
const float FIR_B_SANJIAO_30[31] = {
    -0.001254931011712, -0.002100443989138, -0.002187277211872, -0.001180526976421,
    0.00120953410457, 0.005198231779657, 0.01090126304196, 0.01831565159245,
    0.0273086742125, 0.03761600122554, 0.04884963793975, 0.06051553370488,
    0.07203999393785, 0.0828033430052, 0.09217869480608, 0.09957323967741,
    0.09217869480608, 0.0828033430052, 0.07203999393785, 0.06051553370488,
    0.04884963793975, 0.03761600122554, 0.0273086742125, 0.01831565159245,
    0.01090126304196, 0.005198231779657, 0.00120953410457, -0.001180526976421,
    -0.002187277211872, -0.002100443989138, -0.001254931011712};

/*
 * 离散时间 FIR 滤波器(实数)
 * ----------------
 * 滤波器结构  : 直接型 FIR
 * 滤波器长度  : 11
 * 稳定     : 是
 * 线性相位   : 是 (Type 1)
 */
const int FIR_BLSANJIAO = 11;
const float FIR_B_SANJIAO[11] = {
    0.02130821602225, 0.04839428128152, 0.07976823762396, 0.1135163068894,
    0.147430631823, 0.1791646527198, 0.147430631823, 0.1135163068894,
    0.07976823762396, 0.04839428128152, 0.02130821602225};

/*
 * 离散时间 FIR 滤波器(实数)
 * ----------------
 * 滤波器结构  : 直接型 FIR
 * 滤波器长度  : 11
 * 稳定     : 是
 * 线性相位   : 是 (Type 1)
 */
const int FIR_BL_squre = 11;
const float FIR_B_squre[11] = {
    0.0735322088, 0.08350155503, 0.09175700694, 0.09793293476, 0.1017532349,
    0.1030461118, 0.1017532349, 0.09793293476, 0.09175700694, 0.08350155503,
    0.0735322088};

/*
 * 离散时间 FIR 滤波器(实数)
 * ----------------
 * 滤波器结构  : 直接型 FIR
 * 滤波器长度  : 11
 * 稳定     : 是
 * 线性相位   : 是 (Type 1)
 */
const int FIR_BL_Hamming = 11;
const float FIR_B_Hamming[11] = {
    0.01099357947393, 0.02619347290131, 0.06822326965876, 0.1248471976063,
    0.1734542670022, 0.192576426715, 0.1734542670022, 0.1248471976063,
    0.06822326965876, 0.02619347290131, 0.01099357947393};

#endif
